package com.ruoyi.safe.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 项目管理对象 common_project
 * 
 * @author buxi
 * @date 2023-11-08
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class CommonProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 名称 */
    @Excel(name = "名称")
    private String name;

    /** 编码 */
    @Excel(name = "编码")
    private String code;

    /** 简称 */
    @Excel(name = "简称")
    private String abbreviation;

    /** 签约单位 */
    @Excel(name = "签约单位")
    private Long signingDept;

    /** 项目经理 */
    @Excel(name = "项目经理")
    private String projectManager;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 承包模式 */
    @Excel(name = "承包模式" , dictType = "common_contracting_model")
    private String contractingModel;

    /** 项目等级 */
    @Excel(name = "项目等级", dictType = "common_project_level")
    private String projectLevel;

    /** 所属父项目 */
    @Excel(name = "所属父项目")
    private String parentCode;

    /** 是否集团名义 0是1否 */
    @Excel(name = "是否集团名义", readConverterExp = "0=是,1=否")
    private String whetherBloc;

    /** 施工许可证 */
    @Excel(name = "施工许可证")
    private String license;

    /** 施工许可证 */
    @Excel(name = "施工许可证")
    private List<String> licenses;

    /** 行业类别 */
    @Excel(name = "行业类别" , dictType = "common_industry_category")
    private String industryCategory;

    /** 工程造价 */
    @Excel(name = "工程造价(万元)")
    private BigDecimal projectPrice;

    /** 项目状态 */
    @Excel(name = "项目状态" , dictType = "common_project_status")
    private String projectStatus;

    /** 工程地址 */
    @Excel(name = "工程地址")
    private String projectAddress;

    /** 项目概况 */
    @Excel(name = "项目概况")
    private String projectOverview;

    /** 合同签订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signingDate;

    /** 合同开工日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同开工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 合同竣工日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同竣工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 合同工期 */
    @Excel(name = "合同工期(天)")
    private Long dateCount;

    /** 实际开工日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际开工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date realStartDate;

    /** 实际竣工日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际竣工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date realEndDate;

    /** 实际工期 */
    @Excel(name = "实际工期(天)")
    private Long realDateCount;

    /** 施工单位 */
    @Excel(name = "施工单位")
    private String constructionDept;

    /** 建设单位 */
    @Excel(name = "建设单位")
    private String buildDept;

    /** 设计单位 */
    @Excel(name = "设计单位")
    private String designDept;

    /** 监理单位 */
    @Excel(name = "监理单位")
    private String supervisionDept;

    /** 业主单位 */
    @Excel(name = "业主单位")
    private String ownerDept;

    /** 勘察单位 */
    @Excel(name = "勘察单位")
    private String surveyDept;

    /** 发包单位 */
    @Excel(name = "发包单位")
    private String outsourcingDept;

    /** 删除标志 */
    private String delFlag;

    /** 工程信息管理系统项目id */
    private String gapsProjectId;
}
